package com.itcam.maker.template.enums;

import cn.hutool.core.util.ObjectUtil;
import lombok.Getter;

/**
 * 文件过滤范围枚举
 */
@Getter
public enum FileFilterRangeEnum {

    /**
     * 文件名称过滤
     */
    FILE_NAME("文件名称", "fileName"),

    /**
     * 文件内容过滤
     */
    FILE_CONTENT("文件内容", "fileContent");

    private final String text;

    private final String value;

    /**
     * 构造方法
     *
     * @param text  枚举的文本描述
     * @param value 枚举的值
     */
    FileFilterRangeEnum(String text, String value) {
        this.text = text;
        this.value = value;
    }

    /**
     * 根据 value 获取枚举
     *
     * @param value 枚举的值
     * @return 对应的枚举对象，如果不存在则返回 null
     */
    public static FileFilterRangeEnum getEnumByValue(String value) {
        // 如果传入的值为空，则直接返回 null
        if (ObjectUtil.isEmpty(value)) {
            return null;
        }
        // 遍历所有枚举值，查找与传入值匹配的枚举对象
        for (FileFilterRangeEnum anEnum : FileFilterRangeEnum.values()) {
            if (anEnum.value.equals(value)) {
                return anEnum;
            }
        }
        // 如果没有找到匹配的枚举对象，则返回 null
        return null;
    }
}

